package com.biz.primus.model.oms.vo.returns;

import com.biz.primus.model.oms.enums.CancelType;
import com.biz.primus.model.oms.enums.OrderDeliveryType;
import com.biz.primus.model.oms.enums.OrderState;
import com.biz.primus.model.oms.enums.returns.AuditState;
import com.biz.primus.model.oms.enums.returns.ReturnState;
import com.biz.primus.model.oms.vo.OmsOrderReturnVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;
import org.springframework.beans.factory.annotation.Autowired;

import javax.persistence.*;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author LGJ
 * @date  2017/11/21
 */
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
@ApiModel("退单")
public class OmsReturnVo {


    @ApiModelProperty("订单id")
    private Long orderId;

    @ApiModelProperty("订单来源")
    private String orderSource;

    @ApiModelProperty("退单来源")
    private String returnSource;

    @ApiModelProperty("用户id")
    private Long userId;

    @ApiModelProperty("订单编号")
    private String orderCode;

    @ApiModelProperty("用户名")
    private String userName;

    @ApiModelProperty("用户电话")
    private String userMobile;

    @ApiModelProperty("退货单编号")
    private String returnCode;

    @ApiModelProperty("门店编号")
    private String depotCode;

    @ApiModelProperty("退货审核状态")
    private AuditState auditState;

    @ApiModelProperty("退货状态")
    private ReturnState returnState;

    @ApiModelProperty("取消标识")
    private CancelType cancelType = CancelType.none;

    @ApiModelProperty("退货单渠道")
    private String channel;

    @ApiModelProperty("退货收货确认人(操作员编号)")
    private String receiver;

    @ApiModelProperty("收货确认时间")
    private LocalDateTime receiveTime;

    @ApiModelProperty("是否需要退款,如果需要,则自动生成退款单")
    boolean needRefund;

    @ApiModelProperty("申请的退款金额(生成退款单时使用)")
    private Integer returnAmount;

    @ApiModelProperty("快递单号")
    private String expressNumber;

    @ApiModelProperty("第三方物流公司")
    private String expectedExpressProviderText;

    @ApiModelProperty("退单商品明细")
    private List<OmsReturnItemVo> omsReturnItemVos;

    @ApiModelProperty("申请时间")
    private LocalDateTime createTime;

    @ApiModelProperty("用户备注")
    private String remark;

    @ApiModelProperty("订单状态")
    private OrderState orderState;

    @ApiModelProperty("支付方式")
    private List<String> paymentWays;

    @ApiModelProperty("原订单金额")
    private Integer orderAmount;

    @ApiModelProperty("配送方式")
    private OrderDeliveryType orderDeliveryType;
}
